package cn.jinbyte.data.changelog.annotation;

import cn.jinbyte.data.changelog.convert.ChangeConvert;
import cn.jinbyte.data.changelog.convert.SimpleConvert;

import java.lang.annotation.*;

/**
 * 变更日志属性注解，标识属性的内容变更将记录变更日志
 * 仅作用于基础类型属性字段
 *
 * @author jinty
 * @since 1.0.0
 */
@Documented
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface LogProp {
    /**
     * 描述
     */
    String name();

    /**
     * 描述包裹，如【中文描述】
     */
    String nameWrapper() default "【 】";

    /**
     * 内容转换器
     */
    Class<? extends ChangeConvert> convert() default SimpleConvert.class;

    /**
     * 记录完整信息
     */
    boolean logFull() default true;

    /**
     * 是否忽略空格更新
     */
    boolean ignoreBlank() default false;


}